home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ASME's Mechanical Engine…ing Toolkit 1997 December
/
ASME's Mechanical Engineering Toolkit 1997 December.iso
/
ai
/
prlg195b.lzh
/
SAMPLES.LZH
/
NEW_LIST.PRO
< prev
next >
Wrap
Text File
|
1987-05-30
|
1KB
|
26 lines
/*
The following PROLOG program can be used to append and
delete items from a list. This program defines a functor
newlist which will insert an element in the front of the
original list if it is not already in the list, but will
delete it from the list if it is already in the list.
*/
member(X, [X|_]).
member(X, [_|Z]) :- member(X, Z).
append([], L, L).
append([X|L1], L2, [X|L3]) :- append(L1, L2, L3).
delete(X, L, L1) :- append(L2, [X|L3], L), append(L2, L3, L1).
newlist(Element_X, Old_List, New_List) :-
member(Element_X, Old_List),
delete(Element_X, Old_List, New_List),
!.
newlist(Element_X, Old_List, New_List) :-
append([Element_X], Old_List, New_List).